RecyclerView比ListView更高階且更具靈活性
此元件是一個用於顯示龐大資料集的容器,可通過保持有限數量的檢視進行非常有效的滾動操作
白話一點就是 可以滾動的清單,內容可隨時變更,
1.添加依賴
dependencies {
implementation "androidx.recyclerview:recyclerview:1.2.1"
implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}
2.在主要顯示的mxl 添加元件
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycleview"
android:layout_width="200dp"
android:layout_height="200dp"
/>
在Layout資料夾底下 添加xml檔案 //這xml檔案,也可以說是排版,你RecyclerView顯示出來的模塊的版面模樣
還需要一個Adapter來調配
這個Adapter 必須繼承 RecyclerView.Adapter
我是覺得這有點不好吸收, 白話文就是 : 我要實現RecyclerView.Adapter的一個類別來複寫與設定
private class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.ViewHolder>{}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycle_item,parent,false);
return new ViewHolder(view);
}
@Override //從這裡面變更設定內容 引用holder.裡面 finID的資料修改
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
// holder.tvId.setText(arrayList.get(position).get("Id"));
// holder.tvSub1.setText(arrayList.get(position).get("Sub1"));
// holder.tvSub2.setText(arrayList.get(position).get("Sub2"));
}
@Override //顯示條列
public int getItemCount() {
return 8;
}
}
6.再延續第四點 我的MyListAdapter 還需要內部類別 class ViewHolder extends RecyclerView.ViewHolder{}
冷靜點 已經沒有再延伸了 , 規整出來就是MyListAdapter 有三個方法跟一個內部類別 這樣記就好了
class ViewHolder extends RecyclerView.ViewHolder{
private TextView tvId,tvSub1,tvSub2,tvAvg;
//這裡綁定ID 注意綁定語法不一樣
public ViewHolder(@NonNull View itemView) {
super(itemView);
// tvId = itemView.findViewById(R.id.textView_Id);
// tvSub1 = itemView.findViewById(R.id.textView_sub1);
// tvSub2 = itemView.findViewById(R.id.textView_sub2);
// tvAvg = itemView.findViewById(R.id.textView_avg);
}
RecyclerView mRecyclerView;
MyListAdapter myListAdapter;
mRecyclerView = findViewById(R.id.recycleview);
//忘了說 還需要一個 Manager來設定
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
myListAdapter = new MyListAdapter();
mRecyclerView.setAdapter(myListAdapter);
這樣最基本的RecycleLayout就能執行了